#include "shm.hpp"
#include "namedpipe.hpp"
using namespace std;
// server 是读端

int main()
{
    //  1. 先创建共享内存
    Shm shm(gpathname, gproj_id, gCreator);
    // client在向共享内存写入数据时，一开始都先使用zero()将其中的数据清空
    char* shmaddr = (char*)shm.addr();

    shm.debugShm();

    //  2. 创建管道，这里创建管道纯粹是为了让读端能够等待写端写完数据之后再读
    NamedPipe fifo(common_path, Creator);
    fifo.openForRead();
    std::string tmp;
    fifo.readNamedPipe(&tmp);
    // std::cout << "I am server, i am waiting for information..." << std::endl;
    std::cout << shmaddr << std::endl;
    sleep(4);
    // while (true)
    // {
    //     //让当前进程
    //     std::string tmp;
    //     fifo.readNamedPipe(&tmp);
    //     std::cout << "shm memory content: " << shmaddr << std::endl;
    //     sleep(1);
    // }

    char* addr = (char *)shm.attachShm();
    // 之后就可以通过addr来使用addr后面的共享内存了

    shm.detachShm(addr);

    return 0;
}
